The present invention relates to storage systems, and in particular, to a method and apparatus for performing high-speed virtual tape positioning operations.
Magnetic tape is a prevalent medium for data storage. A tape drive includes hardware for mounting and dismounting a tape, positioning a tape, and reading and writing data to and from a tape. A controller is also included for controlling the hardware to access requested data and to write data to a specified location. The tape controller may also generate control data which is written to the tape and used by the controller to perform operations on the tape.
Typically, data is physically transferred between a host computer and a tape drive in variable-length units termed blocks. Read, write, and positioning commands generated by the host are based on the storage blocks on the tape and includes such commands as: READ BLOCK, WRITE BLOCK, and SPACE BLOCK.
Data blocks stored on tape are organized in groups forming structures of two kinds: user-defined data sets or "files," and "labels", groups of blocks which identify and describe the tape volume and/or a file. See for example ANSI standard X3.27-1978, level 4. FIG. 8 schematically depicts the storage of block groups on tape.
The data in either kind of structure is stored in contiguous blocks. A tapemark, sometimes called a "filemark," is written on the tape to separate labels and files. This tapemark is a block containing a sequence of bits recognized by a tape controller as a tapemark. Several sets of labels and files may comprise a volume with the end of the volume indicated by an end of volume (EOV) indication, for example two contiguous tapemarks.
If the host is accessing a current file and needs to access a subsequent file it may issue a command, for example "SPACE FILE", requesting a block of data following the next tapemark, that is data displaced from a current block by one tapemark. However, due to the block nature of tape storage, each block must be read until the next tapemark is encountered. Thus, the tape must be physically moved to read each block so that the directive is executed at "mechanical speed".
Thus, the speed of executing tapemark relative directives is limited by the necessity of reading data from tape block by block.
Since data access time is often the limiting factor of system speed the development of faster access to data is crucial to improving system speed and performance.